/*     */ package com.zimbra.cs.mailclient;
/*     */ 
/*     */ import com.zimbra.common.util.Log;
/*     */ import java.io.ByteArrayOutputStream;
/*     */ import java.io.IOException;
/*     */ import java.io.OutputStream;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public class MailOutputStream
/*     */   extends OutputStream
/*     */ {
/*     */   private Log log;
/*     */   private ByteArrayOutputStream logbuf;
/*  31 */   private boolean privacy = false;
/*     */   
/*     */ 
/*     */ 
/*     */   protected final OutputStream out;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */   public MailOutputStream(OutputStream out)
/*     */   {
/*  42 */     this.out = out;
/*     */   }
/*     */   
/*     */   public MailOutputStream(OutputStream out, Log log) {
/*  46 */     this(out);
/*  47 */     this.log = log;
/*  48 */     this.logbuf = new ByteArrayOutputStream(1024);
/*     */   }
/*     */   
/*     */   public void write(byte[] b, int off, int len) throws IOException
/*     */   {
/*  53 */     if (this.logbuf != null) {
/*  54 */       if (this.privacy) {
/*  55 */         for (int i = 0; i < len; i++) {
/*  56 */           this.logbuf.write(42);
/*     */         }
/*     */       } else {
/*  59 */         this.logbuf.write(b, off, len);
/*     */       }
/*     */     }
/*  62 */     this.out.write(b, off, len);
/*     */   }
/*     */   
/*     */   public void write(int b) throws IOException
/*     */   {
/*  67 */     if (this.logbuf != null) {
/*  68 */       if (this.privacy) {
/*  69 */         this.logbuf.write(42);
/*     */       } else {
/*  71 */         this.logbuf.write(b);
/*     */       }
/*     */     }
/*  74 */     this.out.write(b);
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public void write(String s)
/*     */     throws IOException
/*     */   {
/*  84 */     int len = s.length();
/*  85 */     for (int i = 0; i < len; i++) {
/*  86 */       write(s.charAt(i));
/*     */     }
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public void writeLine(String s)
/*     */     throws IOException
/*     */   {
/*  98 */     write(s);
/*  99 */     newLine();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */   public void newLine()
/*     */     throws IOException
/*     */   {
/* 108 */     write(13);
/* 109 */     write(10);
/*     */   }
/*     */   
/*     */   public void flush() throws IOException
/*     */   {
/* 114 */     this.out.flush();
/*     */   }
/*     */   
/*     */   public void close() throws IOException
/*     */   {
/* 119 */     this.out.close();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public final void setPrivacy(boolean value)
/*     */   {
/* 128 */     this.privacy = value;
/*     */   }
/*     */   
/*     */   public final void trace() {
/* 132 */     if ((this.logbuf == null) || (this.logbuf.size() == 0)) {
/* 133 */       return;
/*     */     }
/* 135 */     if (this.log.isTraceEnabled()) {
/* 136 */       this.log.trace("C: %s", new Object[] { this.logbuf.toString().trim() });
/*     */     }
/* 138 */     this.logbuf.reset();
/*     */   }
/*     */ }


/* Location:              /home/mint/zimbrastore.jar!/com/zimbra/cs/mailclient/MailOutputStream.class
 * Java compiler version: 7 (51.0)
 * JD-Core Version:       0.7.1
 */